import { Router } from 'express';
import courseController from '../controllers/CourseController.js';
import db from '../models/index.js';
import { protect, restrictTo } from '../middlewares/auth.js';

const { User } = db;

const router = Router();

// 获取所有课程（公开）
router.get('/', courseController.getAllCourses);

// 获取单个课程详情（公开）
router.get('/:id', courseController.getCourse);

// 以下路由需要登录
router.use(protect);

// 创建课程（教师）
router.post(
  '/',
  restrictTo(User.ROLES.TEACHER, User.ROLES.ADMIN),
  courseController.createCourse
);

// 更新课程信息（课程创建者或管理员）
router.patch(
  '/:id',
  courseController.updateCourse
);

// 删除课程（课程创建者或管理员）
router.delete(
  '/:id',
  courseController.deleteCourse
);

// 获取我教授的课程（教师）
router.get(
  '/me/teaching',
  restrictTo(User.ROLES.TEACHER, User.ROLES.ADMIN),
  courseController.getMyTeachingCourses
);

// 获取课程的学生列表（课程创建者或管理员）
router.get(
  '/:courseId/students',
  courseController.getCourseEnrollments
);

export default router;
